Today's gaming machine typically comprises a computerized system controlling a video display or reels that provide wagering games such as slots, video card games (poker, blackjack etc.), video keno, video bingo, video pachinko and other games typical in the gaming industry. In order to prevent players from becoming bored, new versions of wagering games, and alterations to existing games are constantly being developed.
In past systems, the software controlling the computerized system has been primarily proprietary software, including both the operating system and gaming software. Additionally, in previous systems the gaming terminal software has been provided as a single monolithic system. That is, all of the software is built and provided as a single product or unit, typically on a persistent storage device such as a flash memory, a compact flash memory, EEPROM or a hard disk.
This manner of providing gaming software can lead to several problems. A first problem concerns updating games or game features on a gaming machine. In previous systems, every time a new game is released, a technician must go to the gaming machine, unlock and open the gaming machine, remove the old persistent storage media and replace the old media with new media containing the new or updated game. During this time, the gaming machine is unavailable for use, resulting in a loss of revenue for the gaming establishment.
Alternatively, wagering game software may be downloaded to a wagering game machine. Typically the downloaded software components utilizes tightly coupled interfaces. As a result, if an interface changes, all of the components utilizing the interface must typically be recompiled and downloaded to the wagering game machine.